﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SpotifyGenNHibernate.CEN.Spotify;
using SpotifyGenNHibernate.CAD.Spotify;
using SpotifyGenNHibernate.EN.Spotify;

namespace initializeDB
{
    public partial class frmComprarCancion : Form
    {
        
        private UsuarioEN usuarioActual=null;

        public frmComprarCancion()
        {
            InitializeComponent();
        }

        public frmComprarCancion(UsuarioEN usu)
        {
            InitializeComponent();
            usuarioActual = usu;
        }

        private void frmComprarCancion_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'spotifyGenNHibernateDataSet.Cancion' Puede moverla o quitarla según sea necesario.
            this.cancionTableAdapter.Fill(this.spotifyGenNHibernateDataSet.Cancion);
            try
            {
                CancionCAD cancionCad = new CancionCAD();
                CancionCEN cancionCen = new CancionCEN(cancionCad);
                IList<CancionEN> canciones= cancionCen.ObtenerCanciones();
                dgvCanciones.DataSource = canciones;
                int i=0;
                for (i=0; i < canciones.Count();i++)
                {
                    dgvCanciones.Rows[i].Cells[0].Value = canciones[i].IdCancion.ToString();
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("error",ex.ToString());
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                // comprobamos que se ha seleccionado una cancion
                if (lbSeleccionado.Text==null || lbSeleccionado.Text == "")
                {
                    MessageBox.Show("Selecciona una cancion", "Error");
                }
                else // si se ha seleccionado una cancion pasamos a comprarla 
                { 
                    CancionCAD cancionCad = new CancionCAD();
                    CancionCEN cancionCen = new CancionCEN(cancionCad);
                    //comprobar que la cancion no esta ya comprada

                    //si no esta comprada

                    Form frmDatos = new frmDatosBancarios(usuarioActual,cancionCen.ObtenerDatos(int.Parse(lbSeleccionado.Text.ToString())));
                    frmDatos.Show();
                    
                }
                /*
                IList<AlbumEN> albunesArtista = null;
                ArtistaCAD ArtistaCad = new ArtistaCAD();
                ArtistaCEN ArtistaCen = new ArtistaCEN(ArtistaCad);
                ArtistaCen.CrearArtista(1, "artista1", "desc artista1", albunesArtista);

                IList<CancionEN> cancionesAlbum = null;
                AlbumCAD AlbumCad = new AlbumCAD();
                AlbumCEN AlbumCen = new AlbumCEN(AlbumCad);
                AlbumCen.CrearAlbum(1,1,1111, "discografia album1",cancionesAlbum ,1);


                CancionCAD cancionCad = new CancionCAD();
                CancionCEN cancionCen = new CancionCEN(cancionCad);
                cancionCen.CrearCancion("cancion1", 1, 1, 1, 1);*/
            }
            catch (Exception ex) 
            {
                MessageBox.Show(ex.ToString(),"error");
            }
        }

        private void dgvCanciones_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                lbSeleccionado.Text=dgvCanciones.Rows[e.RowIndex].Cells[0].Value.ToString();
            }
        }

        private void btnVolver_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
